| INTERNET |  W│asne funkcje MySQL   

Czy nie by│e╢ nigdy zmΩczony ci▒g│ym pisaniem funkcji MySQL, aby pobraµ jakie╢ proste dane z tablicy? Ja by│em wiΩc stworzy│em kilka pomocnych funkcji, kt≤re za│▒czam teraz do ka┐dego pliku PHP korzystaj▒cego z baz danych. Zreszt▒ zobacz sam !

Je┐eli jeste╢ ju┐ gotowy do stworzenia portalu lub strony, na pewno przyjdzie potrzeba wielokrotnego u┐ywania funkcji   mysql_connect, mysql_query oraz mysql_fetch_array. I mogΩ powiedzieµ Ci tylko jedno, bΩdziesz tym zmΩczony. Stworzy│em zatem osobny plik, w kt≤rym umie╢ci│em kilka funkcji, kt≤re umo┐liwiaj▒ pobieranie danych, kasowanie, dodawanie oraz modyfikowanie rekord≤w w bazie danych. DziΩki temu pisanie kodu sta│o siΩ bardziej strukturalne i mniej mΩcz▒ce ani┐eli wcze╢niej.

Kolejnym plusem jest prostsze odnajdywanie b│Ωd≤w w kodzie.

W ka┐dym pliku PHP, kt≤ry korzysta z baz danych, wstawiam poni┐sze linie kodu:

# funkcje SQL:
require 'SQLFunctions.inc.php3';

Plik ten zawiera 6 funkcji:

  • connectIt() - │▒czy z baz▒ danych
  • doSelect() - pobiera rekord z bazy danych
  • numSelect() - zlicza ilo╢µ rekord≤w (wierszy) w zbiorze wynik≤w

  • doInsert() - wstawia nowy rekord do bazy danych

  • doUpdate() - modyfikuje rekordy w bazie danych

  • doDelete() - kasuje rekordy w bazy danych

W artykule wyja╢nie pierwsze dwie funkcje.

Jak to dzia│a

U┐ywaj▒c funkcji MySQLa bezpo╢rednio w PHP, bΩdziesz musia│ wykonaµ kilka rzeczy zanim otrzymasz wynik z bazy danych. Jak Julie wyja╢ni│ w artykule, musimy po│▒czyµ siΩ z baz▒ danych, nastΩpnie u┐yµ zmiennej po│▒czenia (id) w ka┐dej z funkcji MySQLa (wstawianie, usuwanie czy te┐ pobieranie danych z tablicy).

W moich funkcjach musia│em zrobiµ to samo. Pierwsz▒ rzecz▒ by│o po│▒czenie siΩ z baz▒ danych. Stworzy│em zatem jedn▒ funkcjΩ, kt≤ra ma za zadanie tylko │▒czenie siΩ z baz▒ danych.

Funkcja connectIt:

function doSelect($table, $condition = " ", $selectThis = "*") {
#deklarowanie zmiennych globalnych
global $db;
# │▒czenie siΩ z baz▒ danych
$connect = connectIt ();
# wykonanie zapytania SQL
$sqlQuery = "SELECT " . $selectThis . " FROM " . $table . " " . $condition;
$queryID = mysql_db_query ($db, $sqlQuery, $connect);
# print $sqlQuery;
# print "<p>Query: " . $sqlQuery;
$resultArray = mysql_fetch_array($queryID);
return $resultArray;
}

Funkcja doSelect() pobiera trzy zmienne : $table, $selectThis i $condition. Zmienne $selectThis i $condition nie s▒ wymagane - oznacza to ┐e je┐eli nie przypiszemy do nich ┐adnych warto╢ci to zostan▒ przypisane domy╢lne warto╢ci.

W trzeciej linii funkcji deklarujemy zmienne globalne - w tym wypadku zmienn▒ $db (baza danych). Zmienna ta umieszczona jest w osobnym pliku db.inc.php3 (o kt≤rym wspomnia│em wcze╢niej). Musimy przecie┐ wiedzieµ z jak▒ baz▒ danych mamy siΩ po│▒czyµ.

Pi▒ta linia wywo│uje funkcjΩ connectIt() i przypisuje zmienn▒ po│▒czenia (id) do zmiennej $connect. Musimy j▒ znaµ podczas wywo│ywania funkcji mysql_db_query.

W si≤dmej linii, tworzymy zapytanie SQL, kt≤re przypisujemy do zmiennej $sqlQuery.

String podzielony jest na 5 czΩ╢ci - po│▒czenie specyficznych dla SQL s│≤w (SELECT oraz FROM), oraz trzech zmiennych, kt≤rym warto╢ci przypisywane s▒ podczas wywo│ywania funkcji. Zobacz poni┐sze przyk│ady, aby zrozumieµ zasadΩ dzia│ania tej funkcji.

W dziewi▒tej linii tworzymy now▒ zmienn▒ - $queryID, kt≤rej przypisujemy wynik funkcji mysql_db_query(). Funkcja ta pobiera trzy argumenty - $db, $sqlQuery oraz $connect.

W dwunastej linii pobieramy wiersz z wyniku zapytania i przypisujemy go do zmiennej $resultArray. Kolejna linia zwraca t▒ zmienn▒ jako rezultat naszej funkcji.

Uwagi: Dla u│atwienia debugowania kodu zawar│em w funkcji (linia 10) linijkΩ kodu :
# print "<p>Query: " . $sqlQuery;
DziΩki wyrzuceniu komentarza z tej linii (#), zapytanie SQL zostanie wy╢wietlone na ekranie. U┐ywa│em tego sposobu, gdy zwracane by│y inne rezultaty ani┐eli oczekiwane przeze mnie.

Przyk│ady u┐ycia funkcji:

Mamy tablicΩ klient≤w, z kolumnami ID, Name, Address oraz phone (przewa┐nie tablica tego typu bΩdzie zawiera│a wiΩcej detali, ale to jest tylko prosty przyk│ad)

Ex 1.
Chcia│by╢ znale╝µ wszystkich klient≤w o imieniu Jonson:

$condition = " WHERE Name = 'Jonson'"
$table = "customer";
$info = doSelect($table, $condition);
# print the info;:
print "<p>ID: " . $info[ID];
print "<p>Name: " . $info[Name];
print "<p>Address: " . $info[Address];
print "<p>Phone: " . $info[phone];

Ex. 2
Chcia│by╢ znale╝µ tylko adresy klient≤w o imieniu Jonson:

$select = " Address ";
$condition = " WHERE Name = 'Jonson' ";
$table = "customer";
$info = doSelect($table, $condition, $select);
print "<p>Address: " . $info[Address];

lub

print "<p>Address: " . $info[0];

 

Autor:
Roer Kai t│um. Tomasz Szmigiel
tomasz.szmigiel@inetplus.pl

Artyku│ pochodzi ze strony :
http://www.php.computerzone.pl



                    
ARCHIWALIA | WEBHELP.PL | REDAKCJA                  POPRZEDNIA STRONA | SPIS TREªCI | NAST╩PNA STRONA

CONTENTS COPYRIGHT © 2000 - 2001, KRZYSZTOF DZIEWO╤SKI. ALL RIGHTS RESERVED.